package com.zmn.plat.services.interfaces.channel.workorder.video;

import com.zmn.plat.model.entity.channel.workorder.video.ChannelWorkOrderVideo;
import com.zmn.plat.model.entity.channel.workorder.video.ChannelWorkOrderVideoQuery;

import java.util.List;

/**
 * 类描述：渠道--工单视频
 *
 * @author yangshuangping
 * @since 2021/06/07 15:09
 */
public interface ChannelWorkOrderVideoService {
    /**
     * 根据主键查询
     *
     * @param id 主键ID
     * @return 工单视频实体
     */
    ChannelWorkOrderVideo findByKey(Integer id);

    /**
     * 根据条件分页获取工单视频
     *
     * @param query 查询实体
     * @return 工单视频分页列表
     */
    List<ChannelWorkOrderVideo> listPageByQuery(ChannelWorkOrderVideoQuery query);

    /**
     * 根据条件全量获取工单视频
     *
     * @param query 查询实体
     * @return 工单视频分页列表
     */
    List<ChannelWorkOrderVideo> listByQuery(ChannelWorkOrderVideoQuery query);

    /**
     * 根据渠道ID获取工单总条数
     *
     * @param query 查询实体
     * @return 总条数
     */
    Integer countByQuery(ChannelWorkOrderVideoQuery query);

    /**
     * 查询最大的排序
     *
     * @return 最大排序值
     */
    Integer findMaxSort();

    /**
     * 新增渠道-工单视频
     *
     * @param channelVideo 新增修改实体参数
     * @return 新增条数
     */
    Integer insert(ChannelWorkOrderVideo channelVideo);

    /**
     * 根据实体修改渠道-工单视频
     *
     * @param video 修改实体参数
     * @return
     */
    Integer updateByKey(ChannelWorkOrderVideo video);

    /**
     * 根据渠道工单视频ID删除记录
     *
     * @param videoId 工单视频ID
     */
    void deleteByKey(Integer videoId);

    /**
     * 根据渠道ID删除工单视频记录
     *
     * @param channelId 渠道ID
     */
    void deleteByChannelId(Integer channelId);

    /**
     * 描述: 从旧渠道复制到新渠道
     *
     * @param originalChannelId 原渠道ID
     * @param targetChannelId   新渠道ID
     * @param operator          操作者
     * @return java.lang.Boolean
     * @author guoqiao
     * @since 2021/6/8 13:49
     */
    void copy(Integer originalChannelId, Integer targetChannelId, String operator);

}
